package Object.学生数组的添加与修改;

public class studentArrayAddition_main {
    public static void main(String[] args) {

        //1.建立一个student数组：
        studentArray_javabean[] arr = new studentArray_javabean[3];
        //2.设立已存在的两个学生信息，并添加到数组里：
        studentArray_javabean stu1 = new studentArray_javabean(1,"张三",17);
        studentArray_javabean stu2 = new studentArray_javabean(2,"李四",17);
        arr[0] = stu1;
        arr[1] = stu2;

        //要求一，添加一个学生对象，并对id进行判断唯一性：
        studentArray_javabean stu3 = new studentArray_javabean(3,"赵五",18);
        //对id进行判断唯一性:
        //存在 -- 不用添加， 不存在 -- stu3添加进数组、
        boolean flag = contain(arr, stu3.getId());
        if (flag){
            System.out.println("id重复！！");
        }else {
            //添加数组进数组的方式：
            //1.数组已满 -- 需要创建一个新数组，比老数组+1；
            //2.数组未满 -- 直接添加；
            int count = getcontain(arr);
            if (count == arr.length){ //1.
                studentArray_javabean[] newArr = creatArr(arr);
                //[stu1,stu2,null]
                newArr[count] = stu3;
                printAtt(newArr);

            }else { //2.
                arr[count] = stu3;
                printAtt(arr);
            }
        }
        //删除索引的对应数组：
        int index= index(arr,1);
        if (index >= 0){
            arr[index] = null;
        }else {
            System.out.println("当前id不存在，删除失败");
        }
    }


    //判断id方法
    public static boolean contain(studentArray_javabean[] arr,int id){
        for (int i = 0; i < arr.length; i++) {
            studentArray_javabean stu = arr[i];
            if (stu != null){
                int sid = stu.getId();
                if (sid == id){
                    return true;
             }
            }
        }return false;
    }
    //判断老数组存在几个元素；
    public static int getcontain(studentArray_javabean[] arr){
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]!=null){
                count++;
            }
        }return count;
    }
    //创建新数组；
    public static studentArray_javabean[] creatArr(studentArray_javabean[] arr){
        studentArray_javabean[] newArr = new studentArray_javabean[arr.length+1];
        for (int i = 0; i < arr.length; i++) {
            newArr[i] = arr[i];
        }return newArr;
    }
    //遍历数组：
    public static void printAtt(studentArray_javabean[] arr){
        for (int i = 0; i < arr.length; i++) {
            studentArray_javabean stu = arr[i];
            if (stu != null){
                System.out.println(stu.getId()+","+stu.getName()+","+stu.getAge());
            }
        }
    }
    //查找id的索引：
    public static int index(studentArray_javabean[] arr, int id){
        for (int i = 0; i < arr.length; i++) {
            studentArray_javabean stu = arr[i];
            if (stu != null){
                if(stu.getId()==id){
                    return i;
                }
            }
        }return -1;
    }
}
